System and method for generating tactical routes

ABSTRACT

A computer-implemented system and method for generating a tactical route to a battlefield destination including an Intervisibility Analyzer for analyzing propagation of optical lines of sight in a geographic terrain, a Speed Analyzer for analyzing speed of travelers in the geographic terrain, and a Route Generator for generating routes that facilitate tactical movement. The Intervisibility Analyzer and Speed Analyzer are used by a Cost Generator to determine tactical movement costs in geographic terrain. The Route Generator includes a Cost Evaluator for evaluating the cost of an edge during route generation.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to generation of tacticalroutes, and more particularly to a method and system for generatinggeographic terrain routes that balance speed and exposure to potentialthreats.

2. Discussion of the Background

Soldiers planning tactical routes must ensure that each route allowsthem to remain concealed from enemy observers yet move quickly at thesame time. Creating these routes is a challenging process that requiresgreat effort with no guarantee of desired results.

First, soldiers must gather intelligence on the terrain to be traversed.Often, this comes in the form of topographic maps, aerial photos,incident reports, previous mission plans, and firsthand knowledge.Soldiers operating in areas with more attention and traffic may receiveaccurate, up to date maps; others, like Special Forces soldiersoperating in remote terrain, may receive local maps that are oftenhighly outdated. Soldiers have helpful acronyms to help them rememberwhat factors to consider when analyzing terrain and gatheringintelligence for route planning, such as OCOKA (observation, concealmentand cover, obstacles, key terrain, and avenues of approach). Soldiersalso analyze the contour lines in topographic maps in an attempt tovisualize the lay of the land. Reading contour maps and visualizingterrain is a skill that takes years of training and practice to refineand use properly. Satellites and spy planes flying overhead provideaerial photographs that reveal critical details about the battlefieldterrain, such as vegetation, structures, and enemy force composition.

Next, soldiers use the intelligence gathered to plan a route. Choosing astarting location first, often a forward operating base, combat outpost,or objective rally point, soldiers then plan routes one waypoint at atime. Many soldiers use digital mapping software, either on personalcomputers or global positioning system (GPS) devices, to placewaypoints. Software then connects each subsequent waypoint placed by thesoldier with a straight line. In complex terrain, soldiers are forced tolook closely at the map, placing waypoints close together so that theconnecting lines do not intersect buildings and other obstructions.Often, soldiers spend hours placing hundreds of waypoints in thismanner, refining route legs and tweaking waypoints, until the routereaches the destination. At this point, a primary route has beenplanned, but that is not good enough; on top of that, soldiers willgenerate at least one more, and typically three more routes to accountfor contingent and emergency situations. These routes must still be fastand safe to travel but sufficiently different from each other to beexpedient in the field.

Finally, soldiers traverse the route. Sometimes, route traversal will bepreceded by a route reconnaissance where one or more scouts observe theavenues of approach used by the route for enemy action or otherinteresting intelligence. When soldiers finally embark on the route,there is usually no guarantee that the intelligence used to plan theroute has not since changed drastically. Knowing this, each soldierensures that he knows his current position at all times so that he canreact quickly if the plan changes. Evidence that the plan can (and oftendoes) change can be found in accounts of the Battle of Mogadishu, Battlefor Baghdad, and countless others.

From the above description of tactical route planning, it is easy to seethat planning tactical routes correctly is extremely difficult. Imaginehow a soldier's workflow would look if assisted by a computer softwaretool for planning tactical routes. First, the amount of time and effortspent analyzing intelligence is decreased because the tool analyzesevery single terrain cell. Second, the amount of time and effort spentmeticulously dropping hundreds of waypoints for multiple routes isgreatly reduced because the tool automatically generates routes. Asoldier using that kind of tactical route planning tool would be able tospend less time on detailed planning and more time on other importanttasks, such as route reconnaissance or mission execution.

However, soldiers have not had access to such a tactical route planningtool in the past. While many civilians benefit daily from analogousroute planning tools (MapQuest, Google Maps, and Microsoft Streets andTrips) that help them plan fast and short routes along highway networks,soldiers have simply not had access to that kind of tool for militarypurposes.

The state of the art in tactical route generation suffers from thefollowing important disadvantages:

Fails to suggest intelligent ground maneuvers. Although the state of theart for path planning and terrain awareness in the field of aviation iswell-developed, the state of the art in providing similar tools forground-based maneuvers is lacking. Few tools currently exists thatsuggest intelligent schemes of maneuver on the ground that utilizeterrain information such as land cover maps and digital elevationmodels.

Fails to blend speed and concealment. During tactical movement, soldiersneed to move quickly while remaining concealed, taking advantage of fastterrain that also provides sufficient concealment and cover. However,the state of the art commonly generates routes that aim to maximizeconcealment or speed with no thought as to how these factors could beblended to provide a more usable route. As a result, tactical routescreated using state of the art methods often suffer from being tooexposed when maximizing speed or too slow when maximizing concealment.

SUMMARY OF THE INVENTION

Therefore, there is a need for a method and system that addresses theabove and other problems. The above and other problems are addressed bythe exemplary embodiments of the present invention, which generatesgeographic routes that facilitate tactical movement through surroundingterrain.

Accordingly, in exemplary aspects of the present invention there isprovided a computer-implemented system and method for generatingtactically-feasible routes in battlefield terrain including anIntervisibility Analyzer for analyzing propagation of optical lines ofsight in a geographic terrain, a Speed Analyzer for analyzing speed oftravelers in the geographic terrain, and a Route Generator forgenerating routes that facilitate tactical movement.

The Intervisibility Analyzer utilizes a digital elevation model ofterrain to compute a populate a database of viewsheds for each point inthe model, where each viewshed is a set of other points having opticalline of sight to the point.

The Speed Analyzer determines how fast a traveler may move acrossvarying types of terrain.

The Route Generator searches the nodes and edges in a graph representingthe cost grid to generate the best path between a start and end point.

Advantageously, the exemplary embodiments include various features thatare of particular utility, for example, including suggesting intelligentground maneuvers. The exemplary embodiments provide to ground soldierswhat aviators have had for quite some time: intelligent routing toolsthat suggest the correct path of travel based on environmental factorslike terrain types and visibility.

In addition, the exemplary embodiments blend speed and concealmentduring route generation, helping to ensure that soldiers can reach thedestination quickly and unobserved.

In addition, The exemplary embodiments mimic the way soldiers actuallyplan concealed tactical routes. During tactical movement, soldiersaccept exposure to the surrounding area, but with every step, try tominimize the amount of new terrain to which they are exposed. Thisexplains why rounding corners, entering rooms, and coming up over ridgesare all dangerous movements; they expose the soldier to large amounts ofpreviously hidden terrain all at once. The exemplary embodiments createroutes that minimize the amount of new terrain to which route travelersare exposed during travel and do so by minimizing the sums of the sizesof the unions of the sets of points visible to each route waypoint. Thiskey technique is subtly different and yet vastly superior to anyexisting technique which tries to minimize the sums of the sizes of thesets of points visible to each route waypoint because it mimics the waysoldiers actually plan tactical routes.

In addition, the exemplary embodiments maximize any advantages inweapons range. Soldiers in tactical environments may sometimes desire tomove in open areas where terrain allows them to move quickly and theirweapons capabilities are maximized for the areas visible during travel.Soldiers moving in this fashion leverage routes through open areas tostay outside the range of enemy weaponry but inside the range of theirown weaponry and visibility. The exemplary embodiments generate routesthat allow soldiers to maximize the advantages in range afforded bytheir weapons and have the capability to generate routes that utilizeboth highly visible and fast terrain, thereby allowing a soldier to morefully leverage any potential advantages in weapons (e.g., 50 caliberguns) or surveillance (e.g., night vision).

In addition, the exemplary embodiments create routes that facilitateefficient searching between waypoints. Soldiers in tactical environmentsmay sometimes desire to travel between two waypoints while maximizingthe amount of visible terrain per unit of distance travelled. Generatinga route like this by hand would be extremely difficult for a human. Theexemplary embodiments generate routes that maximize visibility per unitdistance travelled and do so by exposing travelers to the largestcollective area of terrain while minimizing the distance travelled.

Still other aspects, features, and advantages are readily apparent fromthe following detailed description, by illustrating a number ofexemplary embodiments and implementations. The present invention is alsocapable of other and different embodiments, and its several details canbe modified in various respects, all without departing from the spiritand scope of the present invention. Accordingly, the drawings anddescriptions are to be regarded as illustrative in nature, and not asrestrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments of the present invention are illustrated by way ofexample, and not by way of limitation, in the figures of theaccompanying drawings and in which like reference numerals refer tosimilar elements and in which:

FIG. 1 illustrates an Overall System for Tactical Routing;

FIG. 2 illustrates a Cost Generator;

FIG. 3 illustrates Cost Generator Example;

FIG. 4 illustrates a Speed Analyzer;

FIG. 5 illustrates a Speed Analyzer Example

FIG. 6 illustrates an Intervisibility Analyzer;

FIG. 7 illustrates an Intervisibility Analyzer Example;

FIG. 8 illustrates a Minimum Edge Cost Finder;

FIG. 9 illustrates a Minimum Edge Cost Finder Example;

FIG. 10 illustrates a Route Generator;

FIG. 11 illustrates a Route Generator Example;

FIG. 12 illustrates a Cost Evaluator;

FIG. 13 illustrates a Cost Evaluator Example;

FIG. 14 illustrates a second Cost Evaluator Example;

FIG. 15 illustrates a second Route Generator Example; and

FIG. 16 illustrates a second Cost Generator.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

An exemplary embodiment for generating tactical routes is one thatminimizes the path's intervisibility union while meeting speedconstraints by avoiding slow terrain. By minimizing the path'sintervisibility union, travelers are exposed to a minimal amount ofpreviously-unexposed terrain after beginning travel, thereby reducingthe risk of encountering enemies in unexposed terrain. By avoiding slowterrain below an arbitrary threshold, travelers can travel at or abovethe speed threshold at every node on the path, rendering it difficultfor enemies to engage the traveler in combat.

Referring now to the drawings, FIG. 1 illustrates the system's maincomponents of the exemplary embodiment for generating routes thatminimize the path's intervisibility union while meeting speedconstraints by avoiding slow terrain. The Cost Generator 100 uses speedand visibility information to create a blended cost grid for generatingtactical routes. The Minimum Edge Cost Finder 102 searches the edges ofa graph to find the minimum cost edge which is used in computingheuristics while generating tactical routes. The Route Generator 104generates tactical routes. Each of the components has access to acollection of databases. The Map Database 110 contains geographicinformation including land cover maps, cost surfaces, and graphs. TheMap Database 110 is a standard Geographic Information System (GIS) suchas MapInfo by ESRI, Inc. of Redlands, Calif. The IntervisibilityDatabase 108 contains viewsheds, where each viewshed is a set of terrainlocations having optical line of sight to an observing location.Algorithms for computing viewsheds use digital elevation models (DEMs)of varying resolution and complexity, and these algorithms arewell-known to those skilled in the art of terrain analysis. An exampleof one such algorithm for computing viewsheds is the ESRI Visibilityalgorithm in the ISurfaceOp package. As such, the IntervisibilityDatabase 108 is populated with pre-computed viewsheds, and thecomputation of these viewsheds for example, can be performed usingESRI's “Visibility” function, available on the World Wide Web atwebhelp.esri.com/arcgisdesktop/9.1/body.cfm?tocVisable=0&ID=3189&TopicName=visibility, and incorporated byreference herein. Also, storing viewsheds for DEMs in aneasily-accessible format is non-trivial due to memory complexity;however, methods for doing so are also known to those skilled in the artof terrain analysis. As such, storage of the viewsheds and thearchitecture and format of the Intervisibility Database 108 can beperformed, for example, using “Analysis and Visualization of VisibilitySurfaces”, at www.geocomputation.org/2003/Papers/Caldwell_Paper.pdf, andincorporated by reference herein. The Intervisibility Database 108 isrectified to match the coordinates used in the Map Database 110. TheCapabilities Database 106 contains a traversal matrix for mapping landcover types to traversal speeds and a visibility matrix for mappingvisibility parameters to varying observer capabilities.

The following sections describe in detail the components of theexemplary embodiments.

FIG. 2 illustrates the Cost Generator 100 of the exemplary embodimentfor generating routes that minimize the path's intervisibility unionwhile meeting speed constraints by avoiding slow terrain. The CostGenerator 100 begins at step 200 by retrieving the threshold traversalspeed from the Capabilities Database 106. At step 202, the CostGenerator 100 retrieves the cost grid from the Map Database 110. At step204, the Cost Generator 100 retrieves the graph from the Map Database110. At step 206, the Cost Generator 100 obtains the list of nodes fromthe graph. At step 208, the Cost Generator 100 determines if there aremore nodes to evaluate. If not, at step 222, the Cost Generator 100stores the now-populated cost grid back to the Map Database 110 andterminates. If so, at step 210, the Cost Generator 100 gets the currentnode and proceeds to step 212. At step 212, the Cost Generator 100obtains the node's speed by passing the node to the Speed Analyzer 212.At step 214, the Cost Generator 100 determines whether the node's speedis below the threshold traversal speed. If so, at step 220, the CostGenerator 100 sets the node's corresponding cell in the cost grid to acost of infinity to indicate the node is impassable and proceeds to step208. If not, at step 216, the Cost Generator 100 obtains the node'svisibility by passing the node to the Intervisibility Analyzer 216 andproceeds to step 218. At step 218, the Cost Generator 100 sets thenode's corresponding cell in the cost grid to the visibility andcontinues evaluating nodes by proceeding to step 208. At step 222, theCost Generator 100 stores the cost grid. Upon termination after step222, the Cost Generator 100 will have set the cost of each node'scorresponding cell in the cost grid in the Map Database 110. The CostGenerator 100 constructs the cost grid to facilitate the Route Generator104 avoiding nodes having too slow a traversal speed (i.e., traversalspeeds below a threshold value).

To better understand the Cost Generator 100 of the exemplary embodimentfor generating routes that minimize the path's intervisibility unionwhile meeting speed constraints by avoiding slow terrain, consider theexample in FIG. 3. The Cost Generator 100 first retrieves the thresholdtraversal speed 300 from the Capabilities Database 106. Next, the CostGenerator 100 retrieves the cost grid 302 from the Map Database 110.Next, the Cost Generator 100 retrieves the graph 304 from the MapDatabase 110. Next, the Cost Generator 100 obtains the node list 306from the graph 304. Next, the Cost Generator 100 examines each node inthe node list 306. In this example 300, the Cost Generator 100 selectsnode 308 with label 3 at position (0,2). Next, the Cost Generator 100passes the node 308 to the Speed Analyzer 212. The Speed Analyzer 212returns a speed of 20 kph. Next, the Cost Generator 100 determines thatthe speed of the node 308, 20 kph, is not below the threshold traversalspeed 300 of 5 kph. Next, the Cost Generator 100 passes the node 308 tothe Intervisibility Analyzer 216. The Intervisibility Analyzer 216returns a visibility of 4 cells. Next, the Cost Generator 100 sets thecorresponding cell 310 with label 3 at position (0,2) in the cost grid302 to 4 and continues evaluating nodes until termination. In anotherexample, the Cost Generator 100 selects node 312 with label 10 atposition (2,1). Next, the Cost Generator 100 passes the node 312 to theSpeed Analyzer 212. The Speed Analyzer 212 returns a speed of 0 kph.Next, the Cost Generator 100 determines that the speed of the node 312,0 kph, is below the threshold traversal speed 300 of 5 kph. Next, theCost Generator 100 sets the corresponding cell 314 with label 10 atposition (2,1) in the cost grid 302 to infinity (∞) and continuesevaluating nodes until termination. After evaluating each node in thenode list 306, the Cost Generator 100 will have set the costs of eachcorresponding cell in the cost grid 302. The Cost Generator 100 thenterminates.

FIG. 4 illustrates the Speed Analyzer 212 of the exemplary embodimentfor generating routes that minimize the path's intervisibility unionwhile meeting speed constraints by avoiding slow terrain. The SpeedAnalyzer 212 begins at step 400 by retrieving the node passed in fromthe Cost Generator 100. At step 402, the Speed Analyzer 212 retrievesthe land cover map from the Map Database 110. At step 404, the SpeedAnalyzer 212 retrieves the traversal matrix from the CapabilitiesDatabase 106. At step 406, the Speed Analyzer 212 queries the land covermap for the node's terrain type using the node's position. At step 408,the Speed Analyzer 212 returns the speed of the terrain type found inthe traversal matrix and terminates. Upon termination, the SpeedAnalyzer 212 has found the speed for the node. Speeds represent how fasta traveler can travel across the terrain represented by the node.

To better understand the Speed Analyzer 212 of the exemplary embodimentfor generating routes that minimize the path's intervisibility unionwhile meeting speed constraints by avoiding slow terrain, consider theexample in FIG. 5. The Speed Analyzer 212 retrieves the node 500 withlabel 3 at position (0,2) from the Cost Generator 100. Next, the SpeedAnalyzer 212 retrieves the land cover map 502 from the Map Database 110.Next, the Speed Analyzer 212 retrieves the traversal matrix 504 from theCapabilities Database 106. Next, the Speed Analyzer 212 queries the landcover map 502 for the terrain type of the node 500 with label 3 atposition (0,2). The land cover map 502 indicates that the terrain typeof the node 500 with label 3 at position (0,2) is field. Next, the SpeedAnalyzer 212 queries the traversal matrix 504 for the speed of the fieldterrain type. The traversal matrix 504 indicates that the speed of thefield terrain type is 20 kph. The Speed Analyzer 212 then terminates byreturning a speed of 20 kph. In another example, the Speed Analyzer 212retrieves the node 506 with label 10 at position (2,1) from the CostGenerator 100. Later, the Speed Analyzer 212 queries the land cover map502 for the terrain type of the node 506 with label 10 at position(2,1). The land cover map 502 indicates that the terrain type of thenode 506 with label 10 at position (2,1) is water. Next, the SpeedAnalyzer 212 queries the traversal matrix 504 for the speed of the waterterrain type. The traversal matrix 504 indicates that the speed of thewater terrain type is 0 kph. The Speed Analyzer 212 then terminates byreturning a speed of 0 kph.

FIG. 6 illustrates the Intervisibility Analyzer 216 of the exemplaryembodiment for generating routes that minimize the path'sintervisibility union while meeting speed constraints by avoiding slowterrain. The Intervisibility Analyzer 216 begins at step 600 byretrieving the node passed in from the Cost Generator 100. At step 602,the Intervisibility Analyzer 216 queries the Intervisibility Database108 for the node's viewshed V using the node's position. The viewshed Vis a set whose elements comprise the nodes having optical line of sightto the node, and the Intervisibility Database 108 is the record of allsuch sets. At step 604, the Intervisibility Analyzer 216 counts thenumber of elements in V to determine the V's cardinality (size), |V|. Atstep 606, the Intervisibility Analyzer 216 terminates by returning |V|as the visibility. Upon termination, the Intervisibility Analyzer 216has found the visibility for the node. Visibility quantifies the extentto which a traveler is exposed when traveling across the terrainrepresented by the node.

To better understand the Intervisibility Analyzer 216 of the exemplaryembodiment for generating routes that minimize the path'sintervisibility union while meeting speed constraints by avoiding slowterrain, consider the example in FIG. 7. The Intervisibility Analyzer216 retrieves the node 700 with label 7 at position (1,2) from the CostGenerator 100. Next, the Intervisibility Analyzer 216 queries theIntervisibility Database 108 for the viewshed 702 of the node 700 withlabel 7 at position (1,2). The Intervisibility Database 108 indicatesthat the viewshed 702 of the node 700 with label 7 at position (1,2) is{(2,3), (1,2), (2,2), (1,1)}. Next, the Intervisibility Analyzer 216counts the number of elements in the viewshed 702 to determine thecardinality (size) of viewshed 702. The Intervisibility Analyzer 216determines that the visibility is 4. Next, the Intervisibility Analyzer216 terminates by returning 4.

FIG. 8 illustrates the Minimum Edge Cost Finder 102 of the exemplaryembodiment for generating routes that minimize the path'sintervisibility union while meeting speed constraints by avoiding slowterrain. The Minimum Edge Cost Finder 102 begins at step 800 byretrieving the graph as input. At step 802, the Minimum Edge Cost Finder102 retrieves the visibility matrix from the Intervisibility Database108. At step 804, the Minimum Edge Cost Finder 102 sets the currentminimum edge cost C to the maximum viewshed cardinality indicated by thevisibility matrix. At step 806, the Minimum Edge Cost Finder 102 obtainsthe list of edges from the graph. At step 808, the Minimum Edge CostFinder 102 determines if there are more edges to evaluate. If not, atstep 828, the Minimum Edge Cost Finder 102 returns C. If so, at step810, the Minimum Edge Cost Finder 102 obtains the current edge from thegraph. At step 812, the Minimum Edge Cost Finder 102 queries theIntervisibility Database 108 for the viewsheds V1 and V2 of the Edge'snodes N1 and N2 using the nodes' positions. The viewsheds V1 and V2 aresets whose elements comprise the nodes having optical line of sight tonodes N1 and N2 respectively. At step 814, the Minimum Edge Cost Finder102 calculates a first difference D1 by subtracting V2 from V1 using setsubtraction, as indicated by the following formula:

D1=V1−V2

D1 represents the set of elements in V1 and not in V2. At step 816, theMinimum Edge Cost Finder 102 counts the number of elements in D1 todetermine the D1's cardinality, |D1|. At step 818, the Minimum Edge CostFinder 102 calculates a second difference D2 by subtracting V1 from V2using set subtraction, as indicated by the following formula:

D2=V2−V1

D2 represents the set of elements in V2 and not in V1. It is noteworthythat D1 may or may not be equal to D2. At step 820, the Minimum EdgeCost Finder 102 counts the number of elements in D2 to determine theD2's cardinality, |D2|. At step 822, the Minimum Edge Cost Finder 102tests if |D1| or |D2| equals 0 (is minimal). If so, the Minimum EdgeCost Finder 102 sets C to 0 at step 824 and returns C at step 828. Ifnot, at step 826, the Minimum Edge Cost Finder 102 updates C to thesmaller of |D1|, |D2|, and C, as indicated by the following formula:

C=Minimum(|D1|, |D2|, C)

At step 808, the Minimum Edge Cost Finder 102 continues evaluatingedges. Upon termination after step 828, the Minimum Edge Cost Finder 102will have found C, the smallest possible incremental cost of moving fromone node to any adjacent node in any direction.

To better understand the Minimum Edge Cost Finder 102 of the exemplaryembodiment for generating routes that minimize the path'sintervisibility union while meeting speed constraints by avoiding slowterrain, consider the example in FIG. 9. First, the Minimum Edge CostFinder 102 retrieves the graph 900 as input. Next, the Minimum Edge CostFinder 102 retrieves the visibility matrix 902 from the IntervisibilityDatabase 108. Next, the Minimum Edge Cost Finder 102 sets the currentminimum edge cost C to the maximum viewshed cardinality indicated by thevisibility matrix 904. In this example, the observer type is human, sothe Minimum Edge Cost Finder 102 sets C to 9. Next, the Minimum EdgeCost Finder 102 obtains the edge list 904 from the graph 900. Next, inthis example, the Minimum Edge Cost Finder 102 selects the edge 900 withlabel 1 for evaluation. Next, the Minimum Edge Cost Finder 102 queriesthe Intervisibility Database 108 for the viewshed V1 908 of the firstnode of the edge 906. Next, the Minimum Edge Cost Finder 102 queries theIntervisibility Database 108 for the viewshed V2 910 of the second nodeof the edge 906. Next, the Minimum Edge Cost Finder 102 calculates afirst difference D1 by subtracting V2 from V1 using set subtraction asfollows:

D1=V1−V2={(0,1), (0,0), (1,0)}−{(0,2), (0,1), (0,0), (1,0)}=Ø

D1 represents the set of elements in V1 and not in V2; in this example,V1 has no elements not in V2, so D1 is the empty set (Ø). Next, theMinimum Edge Cost Finder 102 counts the number of elements in D1 todetermine D1's cardinality, |D1|. In this case, |D1|=0. Next, theMinimum Edge Cost Finder 102 calculates a second difference D2 bysubtracting V1 from V2 using set subtraction as follows:

D2=V2−V1={(0,2), (0,1), (0,0), (1,0)}−{(0,1), (0,0), (1,0)}={(0,2)}

D2 represents the set of elements in V2 not in V1; in this example, V2has some elements not in V1. Next, the Minimum Edge Cost Finder 102counts the number of elements in D2 to determine the D2's cardinality,|D2|. In this case, |D2|=1. Next, the Minimum Edge Cost Finder 102 testsif |D1| or |D2| equals 0 (is minimal). In this example, |D1|=0, so theMinimum Edge Cost Finder 102 sets C to 0 and terminates by returning C.

FIG. 10 illustrates the Route Generator 104 of the exemplary embodimentfor generating routes that minimize the path's intervisibility unionwhile meeting speed constraints by avoiding slow terrain. The RouteGenerator 104 begins at step 1000 by retrieving the graph as input. Atstep 1002, the Route Generator 104 retrieves the cost grid from the MapDatabase 110. The Route Generator 104 then executes the A* algorithm1004, which finds an optimal path from a start node to an end node. TheRoute Generator 104 assumes the nodes of the graph 1000 arepre-initialized for use in the A* algorithm 1004. The A* algorithm 1004is well known to those skilled in the art, and can be performed, forexample, using “Artificial Intelligence, Third Edition” by Patrick HenryWinston, published by Addison-Wesley, which is incorporated by referenceherein. Initialization of a graph's nodes for use in the A* algorithm1004 is also well-known to those skilled in the art and can beperformed, for example, using chapter 5 of the book “ArtificialIntelligence, Third Edition” by Patrick Henry Winston, published byAddison-Wesley.

The Route Generator 104 necessitates inclusion of a union field in eachnode that stores a union of one or more viewsheds. The Route Generator104 computes and maintains each node's union field in the same manner aseach node's key field is normally computed and maintained. Throughout, anode's union field represents the set union of the viewsheds of thenodes in the path leading up to the node, and a node's key fieldrepresents the cardinality of the node's union (i.e., the number ofnodes in the union). It follows that initialization of the union fieldfor use in the A* algorithm 1004 requires setting the start node's unionfield to the start node's viewshed from the Intervisibility Database108, the start node's key field to the cardinality of the start node'sunion field, and the union and key fields for all other nodes to nulland zero respectively. It also follows that in the step where the A*algorithm 1004 relaxes a node, both the node's key and union fields arerelaxed as well. In the step where the A* algorithm 1004 considersadjacent nodes, the Route Generator 104 will ignore adjacent nodeshaving infinite cost as indicated by the cost grid contained in the MapDatabase 110. The effect of this modification is that the RouteGenerator 104 does not include nodes with infinite cost in the optimalpath, thereby ensuring that the traversal speeds of each node in theoptimal path meets or exceeds a threshold value. It is realized thatthis modification may cause the Route Generator 104 to report that noroute exists. However, alternate exemplary embodiments of the RouteGenerator 104 may allow nodes having infinite cost into the minimumpriority queue, facilitating route generation at the expense of breakingbelow the speed threshold if no other route exists. At step 1006, the A*algorithm 1004 calculates the cost from the current node inconsideration to the adjacent node in consideration, but substitutes useof the Cost Evaluator 1006 to obtain the cost. The Cost Evaluator 1006computes the key and union fields for adjacent nodes as well as anestimate used for ordering nodes in the minimum priority queue. At step1008, the Route Generator 104 returns the tactical route.

To better understand the Route Generator 104 of the exemplary embodimentfor generating routes that minimize the path's intervisibility unionwhile meeting speed constraints by avoiding slow terrain, consider theexample in FIG. 11. First, the Route Generator 104 begins by retrievingthe graph 1100 as input, which specifies a start node 1106 and an endnode 1108. The Route Generator 104 will generate the optimal path fromthe start node 1106 with label 7 at position (1,2) to the end node 1108with label 13 at position (3,0). Next, the Route Generator 104 retrievesthe cost grid 1102 from the Map Database 110. Next, the Route Generator104 executes the A* algorithm 1004. In this step, the A* algorithm 1004configures a node table 1104 and initializes the fields of each node inthe table 1104. Next 1110, the A* algorithm 1004 begins by examining thestart node 1106 with label 7. Next 1112, the cost of moving from node 7to each of node 7's adjacent nodes is computed using the Cost Evaluator1006. Since each of node 7's adjacent nodes are unvisited, all are addedto the minimum priority queue, except node 10 which is ignored becauseit has infinite cost.

Next 1114, node 7 is retired and node 11 is extracted from the minimumpriority queue. Next 1116, the cost of moving from node 11 to each ofnode 11's adjacent nodes is computed using the Cost Evaluator 1006. Nonodes are relaxed, and some of node 11's adjacent nodes are added to theminimum priority queue.

Next 1118, node 11 is retired and node 6 is extracted from the minimumpriority queue. Next 1120, the cost of moving from node 6 to each ofnode 6's adjacent nodes is computed using the Cost Evaluator 1006. Nonodes are relaxed, and some of node 6's adjacent nodes are added to theminimum priority queue.

Next 1122, node 6 is retired and node 16 is extracted from the minimumpriority queue. Next 1124, the cost of moving from node 16 to each ofnode 16's adjacent nodes is computed using the Cost Evaluator 1006. Nonodes are relaxed, and none of node 16's adjacent nodes are added to theminimum priority queue.

Next 1126, node 16 is retired and node 14 is extracted from the minimumpriority queue. Next 1128, the cost of moving from node 14 to each ofnode 14's adjacent nodes is computed using the Cost Evaluator 1006. Nonodes are relaxed, and none of node 14's adjacent nodes are added to theminimum priority queue, including node 13, the end node. At this point,a path from the start node 1106 to the end node 1108 has been found:node 7 to 11 to 14 to 13, and the cost of this path is 9. However, sincethis may not be the optimal path, the algorithm continues searching.

Next 1130, node 14 is retired and node 4 is extracted from the minimumpriority queue. Next 1132, the cost of moving from node 4 to each ofnode 4's adjacent nodes is computed using the Cost Evaluator 1006. Nonodes are relaxed, and none of node 4's adjacent nodes are added to theminimum priority queue.

Next 1134, node 4 is retired and node 8 is extracted from the minimumpriority queue. Next 1136, the cost of moving from node 8 to each ofnode 8's adjacent nodes is computed using the Cost Evaluator 1006. Nonodes are relaxed, and none of node 8's adjacent nodes are added to theminimum priority queue.

Next 1138, node 8 is retired and node 12 is extracted from the minimumpriority queue. Next 1140, the cost of moving from node 12 to each ofnode 12's adjacent nodes is computed using the Cost Evaluator 1006. Nonodes are relaxed, and none of node 12's adjacent nodes are added to theminimum priority queue.

Next 1142, node 12 is retired and node 15 is extracted from the minimumpriority queue. Next 1144, the cost of moving from node 15 to each ofnode 15's adjacent nodes is computed using the Cost Evaluator 1006. Nonodes are relaxed, and none of node 15's adjacent nodes are added to theminimum priority queue.

Next 1146, node 15 is retired and node 9 is extracted from the minimumpriority queue. Next 1148, the cost of moving from node 9 to each ofnode 9's adjacent nodes is computed using the Cost Evaluator 1006. Node13 is relaxed from a cost of 9 to a cost of 7, and none of node 9'sadjacent nodes are added to the minimum priority queue.

Next 1150, node 9 is retired and node 13 is extracted from the minimumpriority queue. Since node 13 was extracted from the queue, the optimalpath from start to end has been found and node evaluation terminates.Next, the optimal path 1154 is constructed by following parent pointersstarting at node 13. The optimal path 1154 is found to be node 7 to 6 to9 to 13 with a cost of 7. The optimal path also meets the speedconstraint by avoiding use of node 10, the only node with infinite costin the graph. The Route Generator 104 then terminates by returning theoptimal path.

FIG. 12 illustrates the Cost Evaluator 1006 of the exemplary embodimentfor generating routes that minimize the path's intervisibility unionwhile meeting speed constraints by avoiding slow terrain. The CostEvaluator 1006 begins at step 1200 by retrieving the current node asinput. At step 1202, the Cost Evaluator 1006 retrieves the adjacent nodeas input. At step 1204, the Cost Evaluator 1006 queries theIntervisibility Database 108 for the viewshed V of the adjacent nodeusing the adjacent node's coordinates. At step 1206, the Cost Evaluator1006 obtains the current union Ucurrent stored in the current node'sunion field. At step 1208, the Cost Evaluator 1006 calculates theadjacent union Uadjacent as the union of V and Ucurrent as follows:

Uadjacent=V∪Ucurrent

At step 1210, the Cost Evaluator 1006 retrieves the minimum edge cost asinput. At step 1212, the Cost Evaluator 1006 calls the UnderestimateGenerator 1212 to determine an estimate E of the cardinality of theunion of the best path from the adjacent node to the end node. TheUnderestimate Generator 1212 uses the diagonal distance heuristic, whichmeasures distance accumulated by traveling along both axial and diagonaledges in a graph. The diagonal distance heuristic can be computed using,for example, “An optimal pathfinder for vehicles in real-world digitalterrain maps”, at www.student.nada.kth.se/˜f93-maj/pathfinder/4.html#1,and incorporated by reference herein. The Underestimate Generator 1212then multiplies the result of the optimal distance heuristic by theminimum edge cost to obtain the estimate E as follows:

E=minimum edge cost 1308*Distance estimate

Those skilled in the art are familiar with the methods used forgenerating underestimates, namely finding the minimum edge cost in thegraph and multiplying it by an underestimate of the distance from theadjacent node to the end node. As such, the Underestimate Generator 1212will not be described any further herein. Instead, please refer to U.S.Pat. No. 6,963,800 to Milbert, which is incorporated herein byreference. At step 1214, the Cost Evaluator 1006 sets the estimatedroute cost Restimated of the adjacent node by summing the result of theUnderestimate Generator 1212 and the cardinality of Uadjacent,|Uadjacent|, as follows:

Restimated=E+|Uadjacent|

At step 1216, the Cost Evaluator 1006 sets the adjacent route costRadjacent of the adjacent node to Uadjacent's cardinality as follows:

Radjacent=|Uadjacent|

After step 1216, the Cost Evaluator 1006 terminates.

To better understand the Cost Evaluator 1006 of the exemplary embodimentfor generating routes that minimize the path's intervisibility unionwhile meeting speed constraints by avoiding slow terrain, consider theexample in FIG. 13. The Cost Evaluator 1006 retrieves the current node1300 with label 7 at position (1,2) from the Route Generator 104. Next,the Cost Evaluator 1006 retrieves the adjacent node 1302 with label 3 atposition (0,2). Next, the Cost Evaluator 1006 queries theIntervisibility Database 108 for the viewshed 1304 V of the adjacentnode 1302 with label 3 at position (0,2). The Intervisibility Database108 indicates that the viewshed 1304 of the adjacent node 1302 withlabel 3 at position (0,2) is {(0,3), (1,3), (0,2), (0,1)}. Next, theCost Evaluator 1006 obtains the union 1306 Ucurrent of the current node1300. In this example, Ucurrent={(2,3), (1,2), (2,2), (1,1)}. Next, theCost Evaluator 1006 computes the adjacent union Uadjacent as follows:

$\begin{matrix}{{Uadjacent} = {V\bigcup{Ucurrent}}} \\{= {\left\{ {\left( {2,3} \right),\left( {1,2} \right),\left( {2,2} \right),\left( {1,1} \right)} \right\}\bigcup\left\{ {\left( {0,3} \right),\left( {1,3} \right),\left( {0,2} \right),\left( {0,1} \right)} \right\}}} \\{= \left\{ {\left( {2,3} \right),\left( {1,2} \right),\left( {2,2} \right),{\left( {1,1} \right)\left( {0,3} \right)},\left( {1,3} \right),\left( {0,2} \right),\left( {0,1} \right)} \right\}}\end{matrix}$

Next, the Cost Evaluator 1006 retrieves the minimum edge cost 1308 asinput. In this example, the minimum edge cost 1308 is 0. Next, the CostEvaluator 1006 calls the Underestimate Generator to determine anestimate E. In this example, the Underestimate Generator computes E asfollows:

E=minimum edge cost 1308*Distance estimate=0*Distance estimate=0

Next, the Cost Evaluator 1006 computes the estimated route costRestimated using E and the cardinality of Uadjacent as follows:

Restimated=E+|Uadjacent|=0+8=8

Finally, the Cost Evaluator 1006 computes the adjacent route costRadjacent as follows:

Radjacent=|Uadjacent|=8

Another exemplary embodiment for generating tactical routes is one thatmaximizes the path's intervisibility union while meeting speedconstraints by avoiding slow terrain. By maximizing the path'sintervisibility union, travelers are exposed to a maximal amount ofpreviously-unexposed terrain after beginning travel, thereby allowingtravelers to exert a surveillance or weapons capability advantage (e.g.,range) over enemies in unexposed terrain. By avoiding slow terrain belowan arbitrary threshold, travelers can travel at or above the speedthreshold at every node on the path, rendering it difficult for enemiesto engage the traveler in combat.

This exemplary embodiment for generating routes that maximize the path'sintervisibility union while meeting speed constraints by avoiding slowterrain defines explicitly-different behavior for only the CostEvaluator 1006 component, and implicitly-different behavior for theRoute Generator 104 component. Also, this exemplary embodiment relies onusing inverses of cost values representing union cardinality. Avariation on this exemplary embodiment may, instead of taking inversecost values representing union cardinality, utilize a maximum priorityqueue for selecting nodes in the A* algorithm 1004. Such an exemplaryembodiment would likely have to abandon using infinite costs torepresent slow terrain. Yet another variation on this exemplaryembodiment may cease node evaluation after each node adjacent to the endnode has been retired. Although such an exemplary embodiment may beunobvious because it is not widely employed in the art, it may reducethe running time of the Route Generator 104 because wasted computationwould be avoided.

To illustrate the behavior of the Cost Evaluator 1006 of the exemplaryembodiment for generating routes that maximize the path'sintervisibility union while meeting speed constraints by avoiding slowterrain, refer to FIG. 12. At step 1214, the Cost Evaluator 1006 setsthe estimated route cost Restimated of the adjacent node by taking theinverse of the sum of the result of the Underestimate Generator 1212 andthe cardinality of Uadjacent, |Uadjacent|, as follows:

Restimated=1/(E+|Uadjacent|)

At step 1216, the Cost Evaluator 1006 sets the adjacent route costRadjacent of the adjacent node to the inverse of Uadjacent's cardinalityas follows:

Radjacent=1/|Uadjacent|

To better understand the Cost Evaluator 1006 of the exemplary embodimentfor generating routes that maximize the path's intervisibility unionwhile meeting speed constraints by avoiding slow terrain, consider theexample in FIG. 14. The Cost Evaluator 1006 retrieves the current node1400 with label 7 at position (1,2) from the Route Generator 104. Next,the Cost Evaluator 1006 retrieves the adjacent node 1402 with label 3 atposition (0,2). Next, the Cost Evaluator 1006 queries theIntervisibility Database 108 for the viewshed 1404 V of the adjacentnode 1402 with label 3 at position (0,2). The Intervisibility Database108 indicates that the viewshed 1404 of the adjacent node 1402 withlabel 3 at position (0,2) is {(0,3), (1,3), (0,2), (0,1)}. Next, theCost Evaluator 1006 obtains the union 1406 Ucurrent of the current node1400. In this example, Ucurrent={(2,3), (1,2), (2,2), (1,1)}. Next, theCost Evaluator 1006 computes the adjacent union Uadjacent as follows:

$\begin{matrix}{{Uadjacent} = {V\bigcup{Ucurrent}}} \\{= {\left\{ {\left( {2,3} \right),\left( {1,2} \right),\left( {2,2} \right),\left( {1,1} \right)} \right\}\bigcup\left\{ {\left( {0,3} \right),\left( {1,3} \right),\left( {0,2} \right),\left( {0,1} \right)} \right\}}} \\{= \left\{ {\left( {2,3} \right),\left( {1,2} \right),\left( {2,2} \right),{\left( {1,1} \right)\left( {0,3} \right)},\left( {1,3} \right),\left( {0,2} \right),\left( {0,1} \right)} \right\}}\end{matrix}$

Next, the Cost Evaluator 1006 retrieves the minimum edge cost 1408 asinput. In this example, the minimum edge cost 1408 is 0. Next, the CostEvaluator 1006 calls the Underestimate Generator to determine anestimate E. In this example, the Underestimate Generator computes E asfollows:

E=minimum edge cost 1408*Distance estimate=0*Distance estimate=0

Next, the Cost Evaluator 1006 computes the estimated route costRestimated using E and the cardinality of Uadjacent as follows:

Restimated=1/(E+|Uadjacent|)=1/(0+8)=1/8=0.125

Finally, the Cost Evaluator 1006 computes the adjacent route costRadjacent as follows:

Radjacent=1/|Uadjacent|=1/8=0.125

To better understand how the changes to the Cost Evaluator 1006 of theexemplary embodiment for generating routes that maximize the path'sintervisibility union while meeting speed constraints by avoiding slowterrain affect the behavior of the Route Generator 104 of the sameexemplary embodiment, consider the example in FIG. 15. First, the RouteGenerator 104 begins by retrieving the graph 1500 as input, whichspecifies a start node 1506 and an end node 1508. The Route Generator104 will generate the optimal path from the start node 1506 with label 7at position (1,2) to the end node 1508 with label 13 at position (3,0).Next, the Route Generator 104 retrieves the cost grid 1502 from the MapDatabase 110. Next, the Route Generator 104 executes the A* algorithm1004. In this step, the A* algorithm 1004 configures a node table 1504and initializes the fields of each node in the table 1504. Next 1510,the A* algorithm 1004 begins by examining the start node 1506 with label7. Next 1512, the cost of moving from node 7 to each of node 7'sadjacent nodes is computed using the Cost Evaluator 1006. Since each ofnode 7's adjacent nodes are unvisited, all are added to the minimumpriority queue, except node 10 which is ignored because it has infinitecost.

Next 1514, node 7 is retired and node 3 is extracted from the minimumpriority queue. Next 1516, the cost of moving from node 3 to each ofnode 3's adjacent nodes is computed using the Cost Evaluator 1006. Nodes2, 4, 6, and 8 are relaxed, and none of node 3's adjacent nodes areadded to the minimum priority queue.

Next 1518, node 3 is retired and node 6 is extracted from the minimumpriority queue. Next 1520, the cost of moving from node 6 to each ofnode 6's adjacent nodes is computed using the Cost Evaluator 1006. Nodes2 and 11 are relaxed, and some of node 6's adjacent nodes are added tothe minimum priority queue.

Next 1522, node 6 is retired and node 2 is extracted from the minimumpriority queue. Next 1524, the cost of moving from node 2 to each ofnode 2's adjacent nodes is computed using the Cost Evaluator 1006. Nonodes are relaxed, and none of node 2's adjacent nodes are added to theminimum priority queue.

Next 1526, node 2 is retired and node 5 is extracted from the minimumpriority queue. Next 1528, the cost of moving from node 5 to each ofnode 5's adjacent nodes is computed using the Cost Evaluator 1006. Node9 is relaxed, and none of node 5's adjacent nodes are added to theminimum priority queue.

Next 1530, node 5 is retired and node 9 is extracted from the minimumpriority queue. Next 1532, the cost of moving from node 9 to each ofnode 9's adjacent nodes is computed using the Cost Evaluator 1006. Nonodes are relaxed, and none of node 9's adjacent nodes are added to theminimum priority queue.

Next 1534, node 9 is retired and node 14 is extracted from the minimumpriority queue. Next 1536, the cost of moving from node 14 to each ofnode 14's adjacent nodes is computed using the Cost Evaluator 1006.Nodes 11 and 13 are relaxed, and some of node 14's adjacent nodes areadded to the minimum priority queue.

Next 1538, node 14 is retired and node 15 is extracted from the minimumpriority queue. Next 1540, the cost of moving from node 15 to each ofnode 15's adjacent nodes is computed using the Cost Evaluator 1006.Nodes 11 and 12 are relaxed, and some of node 15's adjacent nodes areadded to the minimum priority queue.

Next 1542, node 15 is retired and node 12 is extracted from the minimumpriority queue. Next 1544, the cost of moving from node 12 to each ofnode 12's adjacent nodes is computed using the Cost Evaluator 1006. Node8 is relaxed, and none of node 12's adjacent nodes are added to theminimum priority queue.

Next 1546, node 12 is retired and node 8 is extracted from the minimumpriority queue. Next 1548, the cost of moving from node 8 to each ofnode 8's adjacent nodes is computed using the Cost Evaluator 1006. Node4 is relaxed, and none of node 8's adjacent nodes are added to theminimum priority queue.

Next 1550, node 8 is retired and node 4 is extracted from the minimumpriority queue. Next 1552, the cost of moving from node 4 to each ofnode 4's adjacent nodes is computed using the Cost Evaluator 1006. Nonodes are relaxed, and none of node 4's adjacent nodes are added to theminimum priority queue.

Next 1554, node 4 is retired and node 11 is extracted from the minimumpriority queue. Next 1556, the cost of moving from node 11 to each ofnode 11's adjacent nodes is computed using the Cost Evaluator 1006. Nonodes are relaxed, and none of node 11's adjacent nodes are added to theminimum priority queue.

Next 1558, node 11 is retired and node 16 is extracted from the minimumpriority queue. Next 1560, the cost of moving from node 16 to each ofnode 16's adjacent nodes is computed using the Cost Evaluator 1006. Nonodes are relaxed, and none of node 16's adjacent nodes are added to theminimum priority queue.

Next 1562, node 16 is retired and node 13 is extracted from the minimumpriority queue. Since node 13 was extracted from the queue, the optimalpath from start to end has been found and node evaluation terminates.Next, the optimal path 1566 is constructed by following parent pointersstarting at node 13. The optimal path 1566 is found to be node 7 to 3 to6 to 2 to 5 to 9 to 14 to 13 with a cost of 0.067 (approximating 1/15).The optimal path also meets the speed constraint by avoiding use of node10, the only node with infinite cost in the graph. The Route Generator104 then terminates by returning the optimal path. In the exemplaryembodiment for generating routes that maximize the path'sintervisibility union while meeting speed constraints by avoiding slowterrain, the Route Generator 104 produces the path having the maximumvisibility union per distance travelled. In other words, the ratio ofthe cardinality of the path's union to the number of edges in the routeis the maximum for any possible route. In this particular example, theRoute Generator 104 produced a route with a visibility union size of 15grid cells using only 7 edges, yielding a ratio of union size todistance traveled of 15/7=2.143, the highest such ratio for any possibleroute in this example.

Another exemplary embodiment for generating tactical routes is one thatminimizes the path's intervisibility sum while meeting speed constraintsby avoiding slow terrain. By minimizing the path's intervisibility sum,travelers are exposed to a minimal amount of terrain after beginningtravel, thereby reducing the risk of encountering enemies in unexposedterrain. By avoiding slow terrain below an arbitrary threshold,travelers can travel at or above the speed threshold at every node onthe path, rendering it difficult for enemies to engage the traveler incombat. This exemplary embodiment omits use of the Minimum Edge CostFinder 102 and the Cost Evaluator 1006 and modifies the behavior of theCost Generator 100 of the exemplary embodiment for generating routesthat maximize the path's intervisibility union.

FIG. 16 illustrates the Cost Generator 100 of the exemplary embodimentfor generating routes that minimize the path's intervisibility sum whilemeeting speed constraints by avoiding slow terrain. The Cost Generator100 begins at step 1600 by retrieving the threshold traversal speed fromthe Capabilities Database 106. At step 1602, the Cost Generator 100retrieves the cost grid from the Map Database 110. At step 1604, theCost Generator 100 retrieves the graph from the Map Database 110. Atstep 1606, the Cost Generator 100 retrieves the visibility matrix fromthe Intervisibility Database 108. At step 1608, the Cost Generator 100sets the current minimum edge cost C to the maximum viewshed cardinalityindicated by the visibility matrix. At step 1610, the Cost Generator 100obtains the list of nodes from the graph. At step 1612, the CostGenerator 100 determines if there are more nodes to evaluate. If not, atstep 1628, the Cost Generator 100 stores the now-populated cost gridback to the Map Database 110. If so, at step 1614, the Cost Generator100 gets the current node and proceeds to step 1616.

At step 1616, the Cost Generator 100 obtains the node's speed by passingthe node to the Speed Analyzer 212. At step 1618, the Cost Generator 100determines whether the node's speed is below the threshold traversalspeed. If so, at step 1620, the Cost Generator 100 sets the current nodecost N in the corresponding cell in the cost grid to infinity toindicate the node is impassable and proceeds to step 1622. If not, atstep 1624, the Cost Generator 100 obtains the current node's viewshed Vby passing the node to the Intervisibility Analyzer 216 and proceeds tostep 1626. At step 1626, the Cost Generator 100 sets the current nodecost N in the corresponding cell in the cost grid to the cardinality ofV, |V|. At step 1622, the Cost Generator 100 updates C to the smaller ofC and the current node cost N, as indicated by the following formula:

C=Minimum(N, C)

After step 1626, the Cost Generator 100 continues evaluating nodes byproceeding to step 1612. At step 1628, the Cost Generator 100 stores thecost grid. At step 1630, the Cost Generator 100 logs the current minimumcost C. Upon termination after step 1630, the Cost Generator 100 willhave set the cost of each node's corresponding cell in the cost grid inthe Map Database 110.

Another exemplary embodiment for generating tactical routes is one thatmaximizes the path's intervisibility sum while meeting speed constraintsby avoiding slow terrain. By maximizing the path's intervisibility sum,travelers are exposed to a maximal amount of previously-unexposedterrain after beginning travel, thereby allowing travelers to exert asurveillance or weapons capability advantage (e.g., range) over enemiesin unexposed terrain. By avoiding slow terrain below an arbitrarythreshold, travelers can travel at or above the speed threshold at everynode on the path, rendering it difficult for enemies to engage thetraveler in combat.

The Cost Generator 100 of this exemplary embodiment that maximizes thepath's intervisibility sum differs from that of the exemplary embodimentthat minimizes the path's intervisibility sum in two steps; first, atstep 1608, the Cost Generator 100 sets the current minimum edge cost Cto 1. Second, at step 1626, the Cost Generator 100 sets the current nodecost N in the corresponding cell in the cost grid to the inverse of thecardinality of V, |V|, using the following formula:

N=1/|V|

Other steps of the Cost Generator 100 of this exemplary embodiment thatmaximizes the path's intervisibility sum remain the same as thosedescribed in the exemplary embodiment that minimizes the path'sintervisibility sum.

The above-described devices and subsystems of the exemplary embodimentsof FIGS. 1-16 can include, for example, any suitable servers,workstations, PCs, laptop computers, PDAs, Internet appliances, handhelddevices, cellular telephones, wireless devices, other electronicdevices, and the like, capable of performing the processes of theexemplary embodiments of FIGS. 1-16. The devices and subsystems of theexemplary embodiments of FIGS. 1-16 can communicate with each otherusing any suitable protocol and can be implemented using one or moreprogrammed computer systems or devices.

One or more interface mechanisms can be used with the exemplaryembodiments of FIGS. 1-16, including, for example, Internet access,telecommunications in any suitable form (e.g., voice, modem, and thelike), wireless communications media, and the like. For example,employed communications networks or links can include one or morewireless communications networks, cellular communications networks,cable communications networks, satellite communications networks, G3communications networks, Public Switched Telephone Network (PSTNs),Packet Data Networks (PDNs), the Internet, intranets, WiMax Networks, acombination thereof, and the like.

It is to be understood that the devices and subsystems of the exemplaryembodiments of FIGS. 1-16 are for exemplary purposes, as many variationsof the specific hardware and/or software used to implement the exemplaryembodiments are possible, as will be appreciated by those skilled in therelevant art(s). For example, the functionality of one or more of thedevices and subsystems of the exemplary embodiments of FIGS. 1-16 can beimplemented via one or more programmed computer systems or devices.

To implement such variations as well as other variations, a singlecomputer system can be programmed to perform the special purposefunctions of one or more of the devices and subsystems of the exemplaryembodiments of FIGS. 1-16. On the other hand, two or more programmedcomputer systems or devices can be substituted for any one of thedevices and subsystems of the exemplary embodiments of FIGS. 1-16.Accordingly, principles and advantages of distributed processing, suchas redundancy, replication, and the like, also can be implemented, asdesired, to increase the robustness and performance the devices andsubsystems of the exemplary embodiments of FIGS. 1-16.

The devices and subsystems of the exemplary embodiments of FIGS. 1-16can store information relating to various processes described herein.This information can be stored in one or more memories, such as a harddisk, optical disk, magneto-optical disk, RAM, and the like, of thedevices and subsystems of the exemplary embodiments of FIGS. 1-16. Oneor more databases of the devices and subsystems of the exemplaryembodiments of FIGS. 1-16 can store the information used to implementthe exemplary embodiments of the present invention. The databases can beorganized using data structures (e.g., records, tables, arrays, fields,graphs, trees, lists, and the like) included in one or more memories orstorage devices listed herein. The processes described with respect tothe exemplary embodiments of FIGS. 1-16 can include appropriate datastructures for storing data collected and/or generated by the processesof the devices and subsystems of the exemplary embodiments of FIGS. 1-16in one or more databases thereof.

All or a portion of the devices and subsystems of the exemplaryembodiments of FIGS. 1-16 can be conveniently implemented using one ormore general purpose computer systems, microprocessors, digital signalprocessors, micro-controllers, and the like, programmed according to theteachings of the exemplary embodiments of the present invention, as willbe appreciated by those skilled in the computer and software arts.Appropriate software can be readily prepared by programmers of ordinaryskill based on the teachings of the exemplary embodiments, as will beappreciated by those skilled in the software art. In addition, thedevices and subsystems of the exemplary embodiments of FIGS. 1-16 can beimplemented by the preparation of application-specific integratedcircuits or by interconnecting an appropriate network of conventionalcomponent circuits, as will be appreciated by those skilled in theelectrical art(s). Thus, the exemplary embodiments are not limited toany specific combination of hardware circuitry and/or software.

Stored on any one or on a combination of computer readable media, theexemplary embodiments of the present invention can include software forcontrolling the devices and subsystems of the exemplary embodiments ofFIGS. 1-16, for driving the devices and subsystems of the exemplaryembodiments of FIGS. 1-16, for enabling the devices and subsystems ofthe exemplary embodiments of FIGS. 1-16 to interact with a human user,and the like. Such software can include, but is not limited to, devicedrivers, firmware, operating systems, development tools, applicationssoftware, and the like. Such computer readable media further can includethe computer program product of an embodiment of the present inventionfor performing all or a portion (if processing is distributed) of theprocessing performed in implementing the exemplary embodiments of FIGS.1-16. Computer code devices of the exemplary embodiments of the presentinvention can include any suitable interpretable or executable codemechanism, including but not limited to scripts, interpretable programs,dynamic link libraries (DLLs), Java classes and applets, completeexecutable programs, Common Object Request Broker Architecture (CORBA)objects, and the like. Moreover, parts of the processing of theexemplary embodiments of the present invention can be distributed forbetter performance, reliability, cost, and the like.

As stated above, the devices and subsystems of the exemplary embodimentsof FIGS. 1-16 can include computer readable medium or memories forholding instructions programmed according to the teachings of thepresent invention and for holding data structures, tables, records,and/or other data described herein. Computer readable medium can includeany suitable medium that participates in providing instructions to aprocessor for execution. Such a medium can take many forms, includingbut not limited to, non-volatile media, volatile media, transmissionmedia, and the like. Non-volatile media can include, for example,optical or magnetic disks, magneto-optical disks, and the like. Volatilemedia can include dynamic memories, and the like. Transmission media caninclude coaxial cables, copper wire, fiber optics, and the like.Transmission media also can take the form of acoustic, optical,electromagnetic waves, and the like, such as those generated duringradio frequency (RF) communications, infrared (IR) data communications,and the like. Common forms of computer-readable media can include, forexample, a floppy disk, a flexible disk, hard disk, magnetic tape, anyother suitable magnetic medium, a CD-ROM, CDRW, DVD, any other suitableoptical medium, punch cards, paper tape, optical mark sheets, any othersuitable physical medium with patterns of holes or other opticallyrecognizable indicia, a RAM, a PROM, an EPROM, a FLASH-EPROM, any othersuitable memory chip or cartridge, a carrier wave, or any other suitablemedium from which a computer can read.

Although the exemplary embodiments are described in terms of militaryapplications, the teachings of the exemplary embodiments can be usedwith any suitable non-military applications, as will be appreciated bythose skilled in the relevant art(s).

While the present invention have been described in connection with anumber of exemplary embodiments and implementations, the presentinvention is not so limited, but rather covers various modifications andequivalent arrangements, which fall within the purview of the appendedclaims.

1. A system for generating tactical routes, the system comprising: anintervisibility analyzer for analyzing propagation of optical lines ofsight between locations in a geographic terrain, a speed analyzer foranalyzing speeds of travelers across locations in said geographicterrain, and a route generator for generating routes that facilitatetactical movement based on said intervisibility and speed analyses. 2.The system of claim 1 wherein said route generator comprises means formeeting a speed constraint.
 3. The system of claim 1 wherein said routeanalyzer comprises means for avoiding slow areas.
 4. The system of claim1 wherein said route analyzer comprises means for computingintervisibility sums.
 5. The system of claim 1 wherein said routeanalyzer comprises means for computing intervisibility unions.
 6. Thesystem of claim 1 wherein said route analyzer comprises means forminimizing intervisibility sums.
 7. The system of claim 1 wherein saidroute analyzer comprises means for minimizing intervisibility unions. 8.The system of claim 1 wherein said route analyzer comprises means formaximizing intervisibility sums per distance traveled.
 9. The system ofclaim 1 wherein said route analyzer comprises means for maximizingintervisibility unions per distance traveled.
 10. The system of claim 1wherein said route generator comprises: means for meeting a speedconstraint and means for computing intervisibility sums.
 11. The systemof claim 1 wherein said route generator comprises: means for meeting aspeed constraint and means for computing intervisibility unions.
 12. Thesystem of claim 1 wherein said route generator comprises: means foravoiding slow areas and means for computing intervisibility sums. 13.The system of claim 1 wherein said route generator comprises: means foravoiding slow areas and means for computing intervisibility unions. 14.The system of claim 1 wherein said route generator comprises: means formeeting a speed constraint and means for minimizing intervisibilitysums.
 15. The system of claim 1 wherein said route generator comprises:means for meeting a speed constraint and means for minimizingintervisibility unions.
 16. The system of claim 1 wherein said routegenerator comprises: means for avoiding slow areas and means forminimizing intervisibility sums.
 17. The system of claim 1 wherein saidroute generator comprises: means for avoiding slow areas and means forminimizing intervisibility unions.
 18. The system of claim 1 whereinsaid route generator comprises: means for meeting a speed constraint andmeans for maximizing intervisibility sums per distance traveled.
 19. Thesystem of claim 1 wherein said route generator comprises: means formeeting a speed constraint and means for maximizing intervisibilityunions per distance traveled.
 20. The system of claim 1 wherein saidroute generator comprises: means for avoiding slow areas and means formaximizing intervisibility sums per distance traveled.
 21. The system ofclaim 1 wherein said route generator comprises: means for avoiding slowareas and means for maximizing intervisibility unions per distancetraveled.